package abg.core.domain.sys.config;

import abg.core.domain.wx.WxConLoginType;
import abg.core.service.sys.SysDictService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;

/**
 * 微信相关参数，从缓存中获取
 */
@Component
public class WxConfig {

    @Resource
    private SysDictService dict;

    //根据类型获取联合登录参数
    public String connectLoginAppId(WxConLoginType type) {
        return dict.getString("wx_" + type.key + "_id", "");
    }

    //根据类型获取联合登录参数
    public String connectLoginAppSecret(WxConLoginType type) {
        return dict.getString("wx_" + type.key + "_secret", "");
    }

    //移动APP
    public String appId() {
        return dict.getString("wx_app_id", "");
    }

    public String appSecret() {
        return dict.getString("wx_app_secret", "");
    }

    //小程序
    public String mpAppId() {
        return dict.getString("wx_mp_app_id", "");
    }

    public String mpAppSecret() {
        return dict.getString("wx_mp_app_secret", "");
    }

    //网站
    public String h5AppId() {
        return dict.getString("wx_h5_app_id", "");
    }

    public String h5AppSecret() {
        return dict.getString("wx_h5_app_secret", "");
    }

    //服务号
    public String serviceAppId() {
        return dict.getString("wx_service_app_id", "");
    }

    public String serviceAppSecret() {
        return dict.getString("wx_service_app_secret", "");
    }

    //联合登录地址
    public String connectLoginUrl() {
        return dict.getString("wx_login_connect_url", "https://api.weixin.qq.com/sns/jscode2session");
    }

    //微信支付,商户ID
    public String mchId() {
        return dict.getString("wx_pay_mch_id", "");
    }

    //微信支付回调解密参数。商户收到报文后，要解密出明文，解密过程中用的key就是APIv3密钥
    public String apiKey3() {
        return dict.getString("wx_pay_api_key3", "");
    }

    //微信支API证书信息 共三份（证书pkcs12格式、 证书pem格式、 证书密钥pem格式）
    public String apiClientCertP12() {
        return dict.getString("wx_pay_api_client_cert_p12", "");
    }

    //
    public String apiClientCertPem() {
        return dict.getString("wx_pay_api_client_cert_pem", "");
    }

    //
    public String apiClientKeyPem() {
        return dict.getString("wx_pay_api_client_key_pem", "");
    }

    //商户API证书序列号
    //微信支付商户平台: 账户中心 -> 账户设置 -> API安全-> API证书管理，复制证书序列号；
    public String serialNo() {
        return dict.getString("wx_pay_serial_no", "");
    }

    //platSerialNo 平台序列号，接口中包含敏感信息时必传
    public String platSerialNo() {
        return dict.getString("wx_pay_plat_serial_no", "");
    }


}
